package com.naiterui.ehp.bs.doctor.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;

/**
 * 随访任务
 *
 * @author yangfuya
 * @since 2022/1/5
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(description = "随访计划")
public class DrFollowUpRecordDTO {

    @ApiModelProperty(value = "ID")
    private Long id;

    /**
     * 随访类型1复诊，2问卷
     */
    @NotNull(message = "随访类型不能为空")
    @ApiModelProperty(value = "随访类型1复诊，2问卷")
    private Integer type;

    /**
     * 随访名称
     */
    @ApiModelProperty(value = "随访名称(复诊名称不用传后台处理)")
    private String name;

    /**
     * 执行医嘱
     */
    @ApiModelProperty(value = "执行医嘱")
    private String medicalAdvice;

    /**
     * 医生id
     */
    @NotNull(message = "医生id不能为空")
    @ApiModelProperty(value = "医生id")
    private Long doctorId;

    /**
     * 患者id
     */
    @NotNull(message = "患者id不能为空")
    @ApiModelProperty(value = "患者id")
    private Long patientId;

    /**
     * 就诊人id
     */
    @NotNull(message = "就诊人id不能为空")
    @ApiModelProperty(value = "就诊人id")
    private Long inquirerId;

    /**
     * 就诊人名称（快照信息）
     */
    @NotEmpty(message = "就诊人姓名不能为空")
    @ApiModelProperty(value = "就诊人名称（快照信息")
    private String inquirerName;

    /**
     * 就诊人性别（快照信息）
     */
    @NotEmpty(message = "就诊人性别不能为空")
    @ApiModelProperty(value = "就诊人性别（快照信息）")
    private String inquirerGender;

    /**
     * 就诊人年龄（快照信息）
     */
    @NotEmpty(message = "就诊人年龄不能为空")
    @ApiModelProperty(value = "就诊人年龄 前端拼接好传递（快照信息）")
    private String inquirerAge;

    /**
     * 执行时间
     */
    @NotEmpty(message = "执行时间不能为空")
    @ApiModelProperty(value = "执行时间，使用逗号分割")
    private String dates;

    @ApiModelProperty(value = "随访计划表单集合")
    private List<DrFollowUpRecordFormDTO> followUpFormList;
}
